Ajouter du contenu RSS dans un Listview (TListView).
Cet exemple utilise la librairie synapse

 

uses classes, xmldoc, XMLIntf, ComCtrls;

procedure TThreadSearchEngine.AddItemToListView;
var
StartItemNode : IXMLNode;
ANode : IXMLNode;
STitle, sDesc, sLink : WideString;

response:TStringList;
stream:TMemoryStream;

begin

XMLDoc:=TXMLDocument.Create(LV); //LV est la listview
response:=TStringList.create;
stream:=TMemoryStream.Create;
try
httpgettext(starturl,response); //synapse
response.savetostream(stream); //peut etre simplifie
stream.position:=0;
XMLDoc.LoadFromStream(stream);

finally
response.free;
stream.free;
end;

//XMLDoc.FileName := starturl;

XMLDoc.Active:=True;

StartItemNode := XMLDoc.DocumentElement.ChildNodes.First.ChildNodes.FindNode('item') ;

LV.Items.BeginUpdate;

ANode := StartItemNode;
while ANode <> nil do
begin
STitle := ANode.ChildNodes['title'].Text;
sLink := ANode.ChildNodes['link'].Text;
sDesc := ANode.ChildNodes['description'].Text;

//add to list view
with LV.Items.Add do
begin
Caption := STitle;
SubItems.Add(sLink) ;
SubItems.Add(sDesc)
end;

ANode := ANode.NextSibling;
end;

LV.Items.endUpdate;
end;

Retour vers l'index delphi